package org.facyt.vacas.services;

import java.math.BigDecimal;
import java.net.URI;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import org.facyt.vacas.entities.vacas.Componente;
import org.facyt.vacas.entities.vacas.ComponenteValor;
import org.facyt.vacas.entities.vacas.MateriaPrima;


public interface MateriasPrimasService {

	public MateriaPrima getMateriaPrimaById(Integer idMp) throws Exception;
	
	public MateriaPrima getMateriaPrimaByNombre(String nombre) throws Exception;
	
	public MateriaPrima getMpByNombreYGrupo(String nombreMp, long grupo) throws Exception ;

	//public List<Nodo> getTodasMateriasPrima(long idGrupoUsuario) throws Exception;

	ComponenteValor  getComponenteFromComposicion(MateriaPrima mp, Componente componente); 

	int getCalculoColumnas(ArrayList<MateriaPrima> lista);

	String toStringCodDescrip(MateriaPrima materiaPrima);

	String getCostoXUnidadString(MateriaPrima materiaPrima);

	public MateriaPrima updateMp(long idMP, long idUnidad,BigDecimal costo,long idClasificacion, String nombre) throws Exception;

	public MateriaPrima updateMp(long idMP, long idUnidad,BigDecimal costo,long idClasificacion) throws Exception;

	public MateriaPrima nuevaMp(long idGrupoUsuario, String descripcion, 
			long idUnidad, BigDecimal costo, long idClasificacion) throws Exception;

//	public byte[] imprimirMp(UsuarioDTO usuario, String mpaimprimir, HashMap hash, URI urlJasper)throws Exception;
//	public byte[] imprimirLitadoMp(UsuarioDTO usuario, HashMap hash, URI urlJasper)throws Exception;
//	public byte[] imprimirLitadoMpCompleto(UsuarioDTO usuario, HashMap hash, URI urlJasper)throws Exception;
//	
	public ComponenteValor updateCV(Integer idComponente, BigDecimal cantidad, MateriaPrima mp)throws Exception;

	public Object getCostoXUnidadString(MateriaPrima mp, BigDecimal costoMPaportada);
}
